package com.aaa.vegetablemarketexpress.dao;

import com.aaa.vegetablemarketexpress.entity.Unit;
import com.aaa.vegetablemarketexpress.util.Page;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @FileName: Unit
 * @Description:
 * @Author: 张钰哲
 * @CreateTime: 2025/9/6 11:47
 * @Version: 1.0.0
 */
public interface UnitDao {
    /**
     * 分页查询单位列表
     */
    List<Unit> queryByParam(Unit unit);

    /**
     * 根据ID查询单位
     */
    Unit queryByUnitId(Long unitId);

    /**
     * 根据编码查询单位
     */
    Unit queryByUnitCode(String unitCode);

    /**
     * 添加单位
     */
    int add(Unit unit);

    /**
     * 修改单位
     */
    int update(Unit unit);

    /**
     * 删除单位
     */
    int deleteByUnitId(Long unitId);

    /**
     * 检查单位编码是否唯一
     */
    int checkUnitCodeUnique(String unitCode);

    /**
     * 检查单位编码是否唯一（排除当前ID）
     */
    int checkUnitCodeUniqueExcludeId(@Param("unitCode") String unitCode, @Param("unitId") Long unitId);

    /**
     * 检查单位名称是否唯一
     */
    int checkUnitNameUnique(String unitName);

    /**
     * 检查单位名称是否唯一（排除当前ID）
     */
    int checkUnitNameUniqueExcludeId(@Param("unitName") String unitName, @Param("unitId") Long unitId);
}
